package br.edu.unilasalle.simon_api.service;

import java.io.Serializable;
import java.util.List;

import org.springframework.stereotype.Service;

import br.edu.unilasalle.simon_api.domain.BaseEntity;

@Service("IGenericService")
public interface IGenericService<T extends BaseEntity<ID>, ID extends Serializable> {
	
	T find(T entity);
	
	T findById(ID id);
	
	List<T> findAll();
	
	T save(T entity);
	
	T merge(T entity);
	
	void delete(T entity);
	
	void deleteById(ID id);
	
	void refresh(T entity);
	
	T getReference(ID id);
	
}
